package testing;

import data.RecordNotFoundException;

/**
 * Interface that classes that predict the ratings for the Netflix should
 * implement.
 * 
 * @author Robert Layton
 * 
 */
public interface NetflixPredictor {

	/**
	 * Returns a prediction on what the given user would rate the given movie.
	 * This method doesn't use the date aspect.
	 * 
	 * @param userID
	 * @param movieID
	 * @return A prediction of the given user's rating for the given movie
	 * @throws RecordNotFoundException if the userID or movieID is invalid
	 */
	public double predictRating(int userID, short movieID);
	
	/**
	 * Returns a prediction on what the given user would rate the given movie.
	 * This method uses the date aspect.
	 * 
	 * @param userID
	 * @param movieID
	 * @param date
	 * @return A prediction of the given user's rating for the given movie
	 * @throws RecordNotFoundException if the userID or movieID is invalid
	 */
	public double predictRating(int userID, short movieID, String date);
}
